package com.ec.fb.service;

import com.ec.common.domain.PageVO;
import com.ec.fb.domain.dto.FeedbackCreateRequestDTO;
import com.ec.fb.domain.dto.FeedbackReplyRequestDTO;
import com.ec.fb.domain.dto.FeedbackResponseDTO;
import com.ec.fb.domain.dto.FeedbackStatsDTO;

/**
 * 反馈服务接口
 */
public interface FeedbackService {

    /**
     * 用户提交反馈
     */
    FeedbackResponseDTO submitFeedback(FeedbackCreateRequestDTO requestDTO, Long userId);

    /**
     * 管理员回复反馈
     */
    FeedbackResponseDTO replyFeedback(FeedbackReplyRequestDTO requestDTO, Integer adminId);

    /**
     * 分页查询所有反馈（支持按评分筛选）
     */
    PageVO<FeedbackResponseDTO> listFeedbacks(Integer pageNum, Integer pageSize, Integer rating);

    /**
     * 管理员分页查询反馈（支持按状态、用户ID或用户名筛选）
     */
    PageVO<FeedbackResponseDTO> listAdminFeedbacks(Integer pageNum, Integer pageSize, String status, String userQuery);

    /**
     * 用户查询自己的反馈历史（分页）
     */
    PageVO<FeedbackResponseDTO> listMyFeedbacks(Integer pageNum, Integer pageSize, Long userId);

    /**
     * 获取反馈统计
     */
    FeedbackStatsDTO getFeedbackStats();
}